package com.christian.thread.api;

/**
 * 文件描述：Thread 的 join 方法示例
 * 1、join 方法的作用：获得优先运行权限，就是当子线程执行 join 方法时，会一直占用 CPU 时间，直到子线程销毁为止。
 *
 * @Author：wang
 * @Date：2020-01-14 20:40:05
 */
public class JoinCase {

    public static void main(String[] args) {
        //创建线程
        Thread thread = new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                try {
                    Thread.sleep(1 * 10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }, "son");

        thread.start();

        try {
            //调用 join 方法，以获得执行权
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        for (int i = 0; i < 10; i++) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println(Thread.currentThread().getName() + ":" + i);
        }
    }
}
